package com.example.ploy4j.service;

// Potentially DTOs for request/response if needed
// import com.example.ploy4j.dto.DeploymentRequestDto;
// import com.example.ploy4j.dto.DeploymentResponseDto;
import java.util.concurrent.Future; // Or CompletableFuture

public interface DeploymentService {

    /**
     * Asynchronously executes the full deployment pipeline for a given, pre-created deployment job.
     *
     * @param deploymentJobId The ID of the DeploymentJob to process.
     *                      This job should already contain references to GitRepositoryConfig, ServerConfig, and branch.
     * @throws Exception if initial setup for async execution fails (actual deployment errors are handled within the async method).
     */
    void startDeploymentPipeline(Long deploymentJobId);

    // Potentially other methods for specific steps or status checks
    // String checkDeploymentStatus(String deploymentId);
} 